package pe.com.pgn.consolidadorventas.servidorcentral.dao.impl;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

import org.springframework.orm.hibernate3.HibernateTemplate;

import pe.com.pgn.consolidadorventas.servidorcentral.dao.GnvVentaDao;
import pe.com.pgn.consolidadorventas.servidorcentral.dbo.GnvVentaDetallada;

public class GnvVentaDaoImpl implements GnvVentaDao {

	private HibernateTemplate plantilla;
	
	@SuppressWarnings("unchecked")
	public List<GnvVentaDetallada> listarVentas(Map<String,Object> filtros){
		
		String codEstacion = (String)filtros.get("codEstacion");
		Date fechaVenta = (Date)filtros.get("fechaVenta");
		Date fechaProceso = (Date)filtros.get("fechaProceso");
		
		List<Object> lstParametros = new ArrayList<Object>();
		
		String hql = "from GnvVentaDetallada gnv where gnv.idVentaDetallada.codEstacion = ? ";
		lstParametros.add(codEstacion);
		
		if(fechaVenta!=null){
			hql = hql + " and gnv.fechaVenta = ? ";
			lstParametros.add(fechaVenta);
		}
		
		if(fechaProceso!=null){
			hql = hql + " and gnv.fechaProceso = ? ";
			lstParametros.add(fechaProceso);
		}
		
		Object arrayParam[] = lstParametros.toArray();
		List<GnvVentaDetallada> lstVentas = (List<GnvVentaDetallada>)plantilla.find(hql,arrayParam);

		return lstVentas;
	}
	

	public HibernateTemplate getPlantilla() {
		return plantilla;
	}

	public void setPlantilla(HibernateTemplate plantilla) {
		this.plantilla = plantilla;
	}

}